const Course = require('../models/course');
const Cat = require('../models/cat');

exports.new = function (req, res) {
	var courseObj = req.body;
	var catId = req.body.cat;
	Cat.findById(catId, function(err, cat) {
		if (err) {
			return res.status(400).json({msg: '分类获取失败', err});
		}
		if (!cat) {
			return res.status(400).json({msg: '分类不存在'});
		} else {
			var course = new Course(courseObj);
			course.save(function(err, newCourse) {
				if (err) {
					return res.status(500).json({msg: '新增课程失败', err});
				}
				cat.courses.push(newCourse._id);
				cat.save(function (err) {
					if (err) {
						return res.status(500).json({msg: '分类添加课程失败', err});
					}
					res.json({
						msg: '新增课程成功',
						course: newCourse
					})
				})
			})
		}
	})
}

exports.detail = function (req, res) {
	var id = req.params.id;
	Course.findById(id).populate('cat', 'name').exec(function(err, product) {
		if (err) {
			return res.status(500).json({msg: '获取课程详情失败', err});
		}
		res.json({
			msg: '获取商品信息成功',
			product
		})
	})
}

exports.findAll = function (req, res) {
	Course.count({}, function (err, totalCount) {
		if (err) {
			return res.status(500).json({msg: '获取总数失败', err});
		}
		Course
			.find({})
			.populate('category', 'name')
			.exec(function (err, courses) {
				if (err) {
					return res.status(400).json({msg: '获取商品信息失败', err});
				}
				res.json({
					msg: '获取商品成功',
					courses,
					totalCount
				})
			})
	})
}

exports.del = function (req, res) {
	var id = req.params.id;
	if (id) {
		Course.remove({_id: id}, function(err, product) {
			if (err) {
				return res.status(400).json({msg: '删除商品失败', err});
			}
			res.json({
				msg: '删除商品成功'
			})
		})
	} else {
		res.status(400).json({
			msg: '请传入要删除商品的_id'
		})
	}
}
